import { provide, reactive, ref } from 'vue';
import quickView from './index.vue';
import I18n from "@/languages/index";
const $t = I18n.global.t;
const msg = reactive<Object>({
    title: '快速查看',
    content: '内容',
    tabTileBase:$t('goods_information_consumer.tile_base'),
    tabTileSaleProps:$t('goods_information_consumer.prop'),
    tabTileCustomsClearanceProps:$t('goods_information_consumer.cc_prop'),
    tabTileGoodsBarCode:$t('goods_information_consumer.goods_bar_code'),
	tabTilePaking:$t('goods_information_consumer.tile_paking'),
})


/**
 * 使用快捷查看功能的自定义hook。
 * @param proxy - 代理对象，用于访问全局消息和翻译文本。
 * @returns 返回一个对象，包含快速展示组件和控制快速展示的方法。
 */
const useQuickView = (proxy): Object => {
    // 可见性状态，控制快捷视图是否可见
    const quickViewVisible = ref<boolean>(false);
    // 快捷视图的数据
    const quickViewData = ref<any>();
	const quickViewHead = ref<any>();
    /**
     * 快速展示函数，用于显示快捷视图并设置其数据。
     * @param rowData - 要在快捷视图中显示的数据行。
     */
    const quickShowFn = (rowData,MsgObj) => {
		quickViewHead.value = MsgObj
        quickViewData.value=rowData
        quickViewVisible.value = true;
    }

    /**
     * 本地化函数，将快捷视图的消息文本翻译为当前语言。
     */
    const lang = () => {
        Object.keys(msg).map(key => {
            msg[key] = proxy.$t(msg[key])
        })
    }
    lang(); // 初始化时调用，以设置初始语言

    // 提供依赖，让子组件可以使用这些值
    provide("quickViewVisible", quickViewVisible);
    provide("quickViewData", quickViewData);
    provide("quickViewMsg", msg);
	provide("quickViewHead", quickViewHead);
    // 返回快捷视图组件和控制函数
    return {
        quickViewComponet: quickView,
        quickShowFn
    }
}

export default useQuickView

